package esempi;

import java.util.Scanner;
import java.util.StringTokenizer;

public class TestString {// test sulle stringhe

	public static void nomeCognome(String linea) {

		linea = linea.trim();// rimuove gli spazi da destra e da sinistra
		int i = linea.indexOf(' ');
		String cognome = linea.substring(0, i);
		while (i < linea.length() && linea.charAt(i) == ' ') {// salta gli spazi
			i++;
		}
		String nome = linea.substring(i);
		System.out.println(nome.charAt(0) + ". " + cognome);
	}

	public static void main(String[] args) {

		System.out.println("Inserisci nome e cognome:");
		Scanner sc = new Scanner(System.in);
		String linea = sc.nextLine();
		System.out.println("Inserisci lunghezza linea:");
		int l = sc.nextInt();
		// nomeCognome(linea);

		giustifica(linea, l);
		sc.close();

	}

	public static void giustifica(String linea, int l) {
		int parole = 0;
		int lettere = 0;
		String ris = "";

		if (linea.length() > l)
			System.out
					.println("ERRORE: La lunghezza riga deve essere maggiore della stringa");
		else {

			linea.trim();

			int i = 0;
			while (i < linea.length()) {
				if (linea.charAt(i) != ' ')
					lettere++;
				i++;

			}

			StringTokenizer st2 = new StringTokenizer(linea, " ");
			while (st2.hasMoreTokens()) {

				String tk = st2.nextToken();
				parole++;

			}
			StringTokenizer st = new StringTokenizer(linea, " ");
			int spazi = (l - lettere) / (parole - 1);
			int resto = (l - lettere) % (parole - 1);

			while (st.hasMoreTokens()) {

				String tk = st.nextToken();
				ris = ris.concat(tk);
				for (int j = 0; j < spazi - 1; j++) {

					ris = ris.concat(" ");
					if (resto != 0) {
						ris = ris.concat(" ");
						resto--;
					}

				}

			}

			System.out.println(ris);

		}
	}// giustifica
}
